package cn.iocoder.yudao.module.member.controller.admin.siteconfig.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.math.BigDecimal;
import java.util.List;


/**
 * 前端站点配置 DO
 *
 * uk_mobile 索引：基于 {@link #mobile} 字段
 *
 * @author 芋道源码
 */
@Schema(description = "管理后台 -前端站点配置 VO")
@Data
public class SiteConfigurationVo  {

    // ========== 账号信息 ==========

    /**
     * 用户ID
     */
    @Schema(description = "自增主键", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "31457")
    private Long id;

    /**
     * 用户ID
     */
    @Schema(description = "自增主键", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "31457")
    private String siteCode;
    /**
     * 备案号
     */
    @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31457")
    private String mobile;

    @Schema(description = "自增主键", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "31457")
    private String token;

    // ========== 基础信息 ==========

    /**
     * 站点名称
     */
    @Schema(description = "站点名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "31457")
    private String nickname;
    /**
     * 平台版本号
     */
    @Schema(description = "平台版本号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31457")
    private String version;

    /**
     * 微信机器人
     */
    @Schema(description = "微信机器人", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "31457")
    private String weChatRobot;


    /**
     * 安装域名
     */
    @Schema(description = "安装域名", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "31457")
    private String domainName;
    /**
     * 公告
     */
    @Schema(description = "公告", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "31457")
    private String notice;


    // ========== 其它信息 ==========


    /**
     * 是否随机标记 0是 1否
     */
    @Schema(description = "是否随机标记 0是 1否", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "31457")
    private Boolean randomFlag;

    /**
     * 前端log
     */
    @Schema(description = "前端log", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "31457")
    private String logUrl;

    /**
     * 前端版本说明
     */
    @Schema(description = "前端版本说明", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "31457")
    private String versionDescription;

    /**
     * 并发限制数量
     */
    @Schema(description = "并发限制数量", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "31457")
    private Integer numberLimit;

    /**
     * 并发限制数量
     */
    @Schema(description = "是否限制数量", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "31457")
    private Boolean flagLimit;
    /**
     * 是否自动调用
     */
    @Schema(description = "是否自动调用", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "31457")
    private Boolean automaticFlag;
    @Schema(description = "主系统的域名", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "31457")
    private String mainUrl;

/*独立池价格配置*/
    /**
     * 独立池价格
     */
    @Schema(description = "独立池价格", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "31457")
    private BigDecimal privatePoolPrice;



    /**
     *独立池 成本 cost
     */
    @Schema(description = "独立池成本", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "31457")
    private BigDecimal privatePoolCost;


    /**
     * 上传证书价格
     */
    @Schema(description = "上传证书价格", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "31457")
    private BigDecimal upPrice;

    /**
     * 上传证书成本
     */
    @Schema(description = "上传证书成本", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "31457")
    private BigDecimal upCost;

    /*** 用户设置配置 **/

    @Schema(description = "用户设置配置", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private List<MemberDeviceConfigVo> memberDeviceConfigVos;
    /*** 用户设置配置 **/

    @Schema(description = "公共池证书配置", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private List<UserPoolConfigVo> userPoolConfigs;

    @Schema(description = "外部系统连接", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private List<SysLinkVo> sysLinkVos;

}
